iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0
Mobile Development

iOS菜逼八連續30天挑戰-2系列 第 8

iOS菜逼八連續30天挑戰-2 App 一些常用的設定(2/3)

  • 分享至 

  • xImage
  •  

今天要來介紹userDefault

這張圖我們可以看到userDefault儲存的類別~
要看更詳細的話,直接右鍵點userDefault,jump to definition就可以了~

接下來我們建立一個userDefault:

class UserPreference {
    static let shared = UserPreference()
    private let userPreference: UserDefaults
    private init() {
        userPreference = UserDefaults.standard
    }
}
  • 給值:
//設定要儲存的值(value)及key
userPreferences.set(你的值, forKey:你的值的key )

  • 讀取值:
userPreference.型態(forKey: 你的值的 Key)

然後可以弄個enum讀key:

  enum UserPreference: String {
        case cat 
        case dog 
        case bird
 
  }

整個弄好長這樣:

class GlobalAppSetting {
    static let shared = GlobalAppSetting()
    private let userPreferences: UserDefaults
    private init() { userPreferences = UserDefaults.standard }
    
    func resetUserDefault() {
        let domain = Bundle.main.bundleIdentifier!
        UserDefaults.standard.removePersistentDomain(forName: domain)
    }
    
    enum UserPreference: String {
        case dog
        case bird
        case cat
    }
    
    
    var dog: String {
        get{ return userPreferences.string(forKey: UserPreference.dog.rawValue) ?? "" }
        set{ userPreferences.set(newValue, forKey: UserPreference.dog.rawValue) }
    }
    var bird: String {
        get{ return userPreferences.string(forKey: UserPreference.bird.rawValue) ?? "" }
        set{ userPreferences.set(newValue, forKey: UserPreference.bird.rawValue) }
    }
    var cat: String {
        get{ return userPreferences.string(forKey: UserPreference.cat.rawValue) ?? "" }
        set{ userPreferences.set(newValue, forKey: UserPreference.cat.rawValue) }
    }
}
  • 呼叫方式
 GlobalAppSetting.shared.bird = "eagle"


上一篇
iOS菜逼八連續30天挑戰-2 App 一些常用的設定(1/3)
下一篇
iOS菜逼八連續30天挑戰-2 App 常用的設定 (3/3)
系列文
iOS菜逼八連續30天挑戰-230
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言